import api from '@/util/api'

export default {
    namespaced: true,
    state: () => {
        return {
            todos: []
        }
    },
    getters: {
        totalTodos(state) {
            return state.todos.length
        }
    },
    mutations: {
        setTodos(state, { todos }) {
            state.todos = todos
        },
        async del(state, todo) {
            const index = state.todos.indexOf(todo)
            state.todos.splice(index, 1)
        },
        add(state, { todo }) {
            state.todos.push(todo)
        },
        edit(state, { todo }) {
            const index = state.todos.findIndex(d => d.id == todo.id)
            console.log(index)

            state.todos[index] = todo
        }
    },
    actions: {
        //发送异步动作，不能直接修改 state   响应框架
        async load({ commit }) {
            const todos = await api.all()
            commit('setTodos', { todos })
        }
    }
}
